/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Application.Elements;
/**
 * NEM kaput megvalosito osztaly.
 * Pontosan egy bemenete lehet.
 * @author Stikmann
 */
public class NOT extends Element{

    public NOT(){
    }

    /**
     * Elvegzi a NOT kapu szimulaciojat, azaz a kimenetere a bemenetenek
     * ellentettjet rakja.
     * @return Ha valtozott a kimenet, true, egyebkent false
     */
    public boolean simulate(){
        boolean newout=false;
        if(inputs.size()==1)
            newout=!inputs.get(0).getOut();
        if(newout != out){
            out=newout;
            return true;
        }
        else
            return false;
    }

    /**
     * Leellenorzi az elemet. NOT kapunak pontosan egy bemenet kell, ha nem igy van,
     * hibat ad vissza.
     * @return Ha nincs hiba, null, ha van, a hibauzenet.
     */
    @Override
    public String check(){
        if(inputs.size()!=1)
            return "A NOT kapunak pontosan egy bemenet kell.";
        else
            return null;
    }
}
